package com.woniuxy.yoga.product.service.service;

import com.woniuxy.yoga.commons.core.model.PageInfo;
import com.woniuxy.yoga.product.dao.model.PrivateProduct;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.yoga.product.model.dto.PrivateProductByIdDTO;
import com.woniuxy.yoga.product.model.param.AddPrivateProductParam;
import com.woniuxy.yoga.product.model.param.QueryNormalPrivateProductParam;
import com.woniuxy.yoga.product.model.param.QueryPrivateProductParam;

/**
 * <p>
 * 私人产品表 服务类
 * </p>
 *
 * @author 韦用文,刘存益,郎腾霄
 * @since 2023年12月06日
 */
public interface PrivateProductService extends IService<PrivateProduct> {

    /**
     * 新增私教产品
     * @param param
     */
    void addPrivateProduct(AddPrivateProductParam param) throws Exception;

    /**
     * 私教产品上架
     * @param privateProductId
     */
    void normalPrivateProduct(Integer privateProductId);

    /**
     * 私教产品下架
     * @param privateProductId
     */
    void disablePrivateProduct(Integer privateProductId);

    /**
     * 私教产品删除
     * @param privateProductId
     */
    void deletePrivateProduct(Integer privateProductId);

    /**
     * 判断该教练是否存在私教产品
     * @param coachId
     * @return
     */
    PrivateProductByIdDTO checkExistByCoachId(Integer coachId);

    /**
     * 商家查询所有私教产品信息
     * @param param
     * @return
     */
    PageInfo queryPrivateProduct(QueryPrivateProductParam param);

    /**
     * 批量删除私教产品
     * @param storeId
     */
    void removePrivateProduct(Integer storeId);

    /**
     * 用户查询该商家的正常私教产品
     * @param storeId
     * @return
     */
    PageInfo userQueryNormalPrivateProduct(QueryNormalPrivateProductParam param);
}
